perm filename TEST3.SAI[GEO,BGB]2 blob
sn#081318 filedate 1974-01-15 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 BEGIN "TEST3"
00003 00003 REAL VOLUME,VOLTMP
00006 ENDMK
⊗;
BEGIN "TEST3"
DEFINE α="COMMENT";DEFINE π="3.1415927";
REQUIRE "GEOMES.HDR" SOURCE_FILE;
EXTERNAL SIMPLE INTEGER PROCEDURE ICAM (STRING FILE);
EXTERNAL SIMPLE REAL PROCEDURE DETERM (INTEGER Q);
INTEGER B1,B2,F,E,V,V0,E0,T,I;
INTEGER V1,V2,V3;
INTEGER Q;
REAL VOLUME,VOLTMP;
REAL XMAX,YMAX,ZMAX;
REAL XMIN,YMIN,ZMIN;
GEONIT;
B1 ← IGEM("HIP.GEM[GEM,BGB]");
ICAM("TMP.CAM[GEM,BGB]");
Q ← MKNODE(0);
VOLUME ← 0;
REAL VOLUME,VOLTMP;
REAL XMAX,YMAX,ZMAX;
REAL XMIN,YMIN,ZMIN;
α VERTEX SCAN FOR MINAMAX LOCI;
XMAX ← YMAX ← ZMAX ← -1000;
XMIN ← YMIN ← ZMIN ← +1000;
V ← PVT(B1);
DO BEGIN
IF XWC(V) > XMAX THEN XMAX ← XWC(V);
IF YWC(V) > YMAX THEN YMAX ← YWC(V);
IF ZWC(V) > ZMAX THEN ZMAX ← ZWC(V);
IF XWC(V) < XMIN THEN XMIN ← XWC(V);
IF YWC(V) < YMIN THEN YMIN ← YWC(V);
IF ZWC(V) < ZMIN THEN ZMIN ← ZWC(V);
END UNTIL B1=(V←PVT(V));
XMIN ← XMIN*12; XMAX←XMAX*12;
YMIN ← YMIN*12; YMAX←YMAX*12;
ZMIN ← ZMIN*12; ZMAX←ZMAX*12;
OUTSTR(9&"XMIN = "&CVG(XMIN)&9&"XMAX = "&CVG(XMAX)&13&10);
OUTSTR(9&"YMIN = "&CVG(YMIN)&9&"YMAX = "&CVG(YMAX)&13&10);
OUTSTR(9&"ZMIN = "&CVG(ZMIN)&9&"ZMAX = "&CVG(ZMAX)&13&10);
α FACE SCAN;
F ← PFACE(B1);
DO BEGIN
I←0;
E0←PED(F); E←ECCW(E0,F);
V1 ← VCW(E0,F);
V2 ← VCCW(E0,F);
V3 ← VCCW(E,F);
IX(Q) ← XWC(V1);IY(Q) ← YWC(V1);IZ(Q) ← ZWC(V1);
JX(Q) ← XWC(V2);JY(Q) ← YWC(V2);JZ(Q) ← ZWC(V2);
KX(Q) ← XWC(V3);KY(Q) ← YWC(V3);KZ(Q) ← ZWC(V3);
VOLUME ← VOLUME + DETERM(Q);
END UNTIL B1=(F←PFACE(F));
OUTSTR("TOTAL VOLUME = "&CVG(12*12*12*VOLUME/6)&13&10);
INCHRW;
GEODPY;
WHILE TRUE DO INCHRW;
END "TEST3"; BGB 10 JANUARY 1974.